package com.wicket.okrcomponent.biz.service.dto.req;

import com.wicket.okrcomponent.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.validation.constraints.NotNull;
import lombok.Data;
import com.wicket.okrcomponent.biz.service.dto.common.FieldsNameAndValueToOneDatasDto;
import com.wicket.okrcomponent.biz.service.dto.common.MemberChannelDto;

/**
 * @desc ImplementSmartSessionReceiveFieldInputReqDto
 * @使用场景
 */
@Data
public class ImplementSmartSessionReceiveFieldInputReqDto
  extends BaseDto
  implements Serializable {

  /**
   * 是否 TRUE:是 FALSE:否
   */
  @NotNull(message = "是否不能为空")
  @ApiModelProperty("是否")
  private String tureOrFalse;
/**
     * 消息ID 
     */
    @NotNull(message = "消息ID不能为空")
@ApiModelProperty("消息ID")
    private String	 messageId;

    /**
     * 消息通道ID 
     */
    @NotNull(message = "消息通道ID不能为空")
@ApiModelProperty("消息通道ID")
    private String	 messageChannelId;
/**
     * 第一个字段字段名 
     */
    @NotNull(message = "第一个字段字段名不能为空")
@ApiModelProperty("第一个字段字段名")
    private String	 firstFieldName;

    /**
     * 第一个字段字段值 
     */
    @NotNull(message = "第一个字段字段值不能为空")
@ApiModelProperty("第一个字段字段值")
    private String	 firstFieldValue;

    /**
     * 第二个字段字段名 
     */
    @ApiModelProperty("第二个字段字段名")
    private String	 secondFieldName;

    /**
     * 第二个字段字段值 
     */
    @ApiModelProperty("第二个字段字段值")
    private String	 secondFieldValue;
/**
     * 第三个字段字段名
     */
    @ApiModelProperty("第三个字段字段名")
    private String	 thirdFieldName;

    /**
     * 第三个字段字段值
     */
    @ApiModelProperty("第三个字段字段值")
    private String	 thirdFieldValue;
@ApiModelProperty("字段名与值转数据集列表")
private List<FieldsNameAndValueToOneDatasDto> fieldsNameAndValueToOneDatasList = new ArrayList<>();
/**
     * 短信服务地址 
     */
    @NotNull(message = "短信服务地址不能为空")
@ApiModelProperty("短信服务地址")
    private String	 smsServeUrl;

    /**
     * 接口请求类型 
     */
    @NotNull(message = "接口请求类型不能为空")
@ApiModelProperty("接口请求类型")
    private String	 interfacemethod;

    /**
     * 短信服务KEY字段名 
     */
    @NotNull(message = "短信服务KEY字段名不能为空")
@ApiModelProperty("短信服务KEY字段名")
    private String	 smsKeyFields;

    /**
     * 短信服务KEY 
     */
    @NotNull(message = "短信服务KEY不能为空")
@ApiModelProperty("短信服务KEY")
    private String	 smsKey;

    /**
     * 阿里云的AK字段名 
     */
    @NotNull(message = "阿里云的AK字段名不能为空")
@ApiModelProperty("阿里云的AK字段名")
    private String	 aliyunAkFields;

    /**
     * 阿里云的AK 
     */
    @NotNull(message = "阿里云的AK不能为空")
@ApiModelProperty("阿里云的AK")
    private String	 aliyunAk;

    /**
     * 阿里云的SK字段名 
     */
    @NotNull(message = "阿里云的SK字段名不能为空")
@ApiModelProperty("阿里云的SK字段名")
    private String	 aliyunSkFields;

    /**
     * 阿里云的SK 
     */
    @NotNull(message = "阿里云的SK不能为空")
@ApiModelProperty("阿里云的SK")
    private String	 aliyunSk;

    /**
     * 短信模板标识字段名 
     */
    @NotNull(message = "短信模板标识字段名不能为空")
@ApiModelProperty("短信模板标识字段名")
    private String	 smsTemplateCodeFields;

    /**
     * 短信模板标识 
     */
    @NotNull(message = "短信模板标识不能为空")
@ApiModelProperty("短信模板标识")
    private String	 smsTemplateCode;

    /**
     * 短信接收人字段名 
     */
    @NotNull(message = "短信接收人字段名不能为空")
@ApiModelProperty("短信接收人字段名")
    private String	 smsReceiverFields;

    /**
     * 短信接收人 
     */
    @NotNull(message = "短信接收人不能为空")
@ApiModelProperty("短信接收人")
    private String	 smsReceiver;
@ApiModelProperty("成员通道列表")
private List<MemberChannelDto> memberChannelList = new ArrayList<>();
/**
     * 自定义字段
     */
    @NotNull(message = "自定义字段不能为空")
@ApiModelProperty("自定义字段")
    private String	 customField;
/**
     * 使用大场景类型编码 SYSTEM:消息
     */
    @NotNull(message = "使用大场景类型编码不能为空")
@ApiModelProperty("使用大场景类型编码")
    private String	 sceneTypeCode;

    /**
     * 当前虚拟形象子场景 STRONG_REMINDER_BY_ASSISTANT:助手强提醒 CHAT_VIRTUAL_IMAGE:沟通形象 CONTENT_VIRTUAL:内容消息形象
     */
    @NotNull(message = "当前虚拟形象子场景不能为空")
@ApiModelProperty("当前虚拟形象子场景")
    private String	 theCurrentVirtualAvatarSubScene;

    /**
     * 虚拟形象展示用途类型 SELF_COGNITION:自醒 OTHER_COGNITION:他醒
     */
    @ApiModelProperty("虚拟形象展示用途类型")
    private String	 virtualImageViewType;

    /**
     * 虚拟形象标识
     */
    @ApiModelProperty("虚拟形象标识")
    private String	 virtualImageCode;

    /**
     * 身份人员ID
     */
    @ApiModelProperty("身份人员ID")
    private String	 originalRoleMemberId;

    /**
     * 个人账号ID
     */
    @ApiModelProperty("个人账号ID")
    private String	 userId;

    /**
     * 是否自定义形象 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否自定义形象")
    private String	 isCustomImage;
/**
     * 消息发送方类型 ASSISTANT_AS_SENDER:小助手作为发送方 CURRENT_USER_AS_SENDER:当前用户作为发送方 CONF_ROLE_AS_SENDER:配置角色作为发送方
     */
    @NotNull(message = "消息发送方类型不能为空")
@ApiModelProperty("消息发送方类型")
    private String	 messageSenderType;

    /**
     * 角色标识
     */
    @ApiModelProperty("角色标识")
    private String	 roleCode;

    /**
     * 模板引擎标识
     */
    @NotNull(message = "模板引擎标识不能为空")
@ApiModelProperty("模板引擎标识")
    private String	 templateSemanticEngineCode;

    /**
     * 短信行为类型
     */
    @NotNull(message = "短信行为类型不能为空")
@ApiModelProperty("短信行为类型")
    private String	 smsBehaviorType;
/**
     * 对象名称 
     */
    @ApiModelProperty("对象名称")
    private String	 objectName;
/**
     * 消息内容 
     */
    @NotNull(message = "消息内容不能为空")
@ApiModelProperty("消息内容")
    private String	 messageContent;
/**
     * 消息标题 
     */
    @NotNull(message = "消息标题不能为空")
@ApiModelProperty("消息标题")
    private String	 messageTitle;
/**
     * 自定义字段1 
     */
    @NotNull(message = "自定义字段1不能为空")
@ApiModelProperty("自定义字段1")
    private String	 customField1;
/**
     * 就职记录ID 
     */
    @NotNull(message = "就职记录ID不能为空")
@ApiModelProperty("就职记录ID")
    private String	 inductionRecordId;
/**
     * 消息位置标识 
     */
    @NotNull(message = "消息位置标识不能为空")
@ApiModelProperty("消息位置标识")
    private String	 messageLocationCode;
/**
     * 发送消息场景 AUTO_GEN_REPORT_TASK:自动生成汇报任务（待汇报-空转未开始） AUTO_ANA_SUBMIT_TO_SUC:自动分析进行中汇报任务（待汇报转已成功） AUTO_GEN_REPORT_TASK_ONGOING:自动生成汇报任务（待汇报-空转进行中） SUB_REPORT_TASK_SUB_OVERDUW_TO_SUC:提交汇报任务（已逾期转已成功） AUTO_ANA_SUBMIT_TO_SUC:自动分析待汇报任务（待汇报转已成功） AUTO_ANA_NOT_AT_THE_REPORT_TASK_ONG:自动分析待汇报任务（未开始转进行中） OVERDUE_SUB_REPORT_TASK_SUB_TO_EVA:逾期-提交汇报任务（待汇报转评价中） OVERDUE_SUB_REPORT_TASK_SUB_TO_EXA:逾期-提交汇报任务（待汇报转审核中） OVERDUE_SUB_REPORT_TASK_SUB_TO_SUC:逾期-提交汇报任务（待汇报转已成功） OVERDUE_EVA_REPORT_TASK_EVA_TO_EXA:逾期-评价汇报任务（评价中转审核中） OVERDUE_EVA_REPORT_TASK_EVA_TO_SUC:逾期-评价汇报任务（评价中转已成功） OVERDUE_EXA_REPORT_TASK_EXA_TO_SUC:逾期-审核汇报任务（审核中转已成功） OVERDUE_EXA_REPORT_TASK_EXA_TO_FAIL:逾期-审核汇报任务（审核中转已失败） OVERDUE_CANCEL_REPORT_TASK_EVA_TO_SUB:逾期-撤销汇报任务（评价中转待汇报） OVERDUE_CANCEL_REPORT_TASK_EXA_TO_SUB:逾期-撤销汇报任务（审核中转待汇报） OVERDUE_REJECT_REPORT_TASK_EVA_TO_SUB:逾期-驳回任务（评价中转待汇报） OVERDUE_REJECT_REPORT_TASK_EXA_TO_SUB:逾期-驳回任务（审核中转待汇报） SUB_REPORT_TASK_SUB_TO_EVA:提交汇报任务（待汇报转评价中） REMIND_HANDLE_PROBLEM:督办问题 SUB_REPORT_TASK_SUB_TO_EXA:提交汇报任务（待汇报转审核中） SUB_REPORT_TASK_SUB_TO_SUC:提交汇报任务（待汇报转已成功） REMIND_REPORT_TASK:提醒汇报 EVA_REPORT_TASK_EVA_TO_EXA:评价汇报任务（评价中转审核中） EVA_REPORT_TASK_EVA_TO_SUC:评价汇报任务（评价中转已成功） EXA_REPORT_TASK_EXA_TO_SUC:审核汇报任务（审核中转已成功） EXA_REPORT_TASK_EXA_TO_FAIL:审核汇报任务（审核中转已失败） AUTO_ANA_SUBMIT_TO_OVERDUE:自动分析逾期任务（待汇报转已逾期） AUTO_ANA_EVA_TO_OVERDUE:自动分析逾期任务（评价中转已逾期） AUTO_ANA_EXA_TO_OVERDUE:自动分析逾期任务（审核中转已逾期） AUTO_ANA_OVERDUE_TO_FAIL:自动分析失败任务（已逾期转已失败） AUTO_ANA_SUBMIT_TO_FAIL:自动分析失败任务（待汇报转已失败） AUTO_ANA_EVA_TO_FAIL:自动分析失败任务（评价中转已失败） AUTO_ANA_EXA_TO_FAIL:自动分析失败任务（审核中转已失败） CANCEL_REPORT_TASK_EVA_TO_SUB:撤销汇报任务（评价中转待汇报） CANCEL_REPORT_TASK_EXA_TO_SUB:撤销汇报任务（审核中转待汇报） REJECT_REPORT_TASK_EVA_TO_SUB:驳回任务（评价中转待汇报） REJECT_REPORT_TASK_EXA_TO_SUB:驳回任务（审核中转待汇报） ARRANGE_WORK_TASK_TOBESIGN:安排工作任务（待签收） ARRANGE_WORK_TASK_ONGOING:安排工作任务（进行中） ARRANGE_WORK_TASK_NOT_AT_THE:安排工作任务（未开始） CFM_REC_WORK_TASK_SIGN:确认签收工作任务（已签收-空转未开始） AUTO_ANA_WORK_TASK_NOT_AT_THE_TO_ONGOING:自动分析进行中工作任务（未开始转进行中） AUTOMATIC_ANALYSIS_OF_UPCOMING_OVERDUE_WORK_TASKS:自动分析即将逾期工作任务（进行中） ADVANCE_WORK_TASK_NOT_AT_THE_TO_ONGOING:工作任务人工提前开始（未开始转进行中） CFM_REC_WORK_TASK_SIGN_ONGOING:确认签收工作任务（已签收-空转进行中） AUTO_ANA_WORK_TASK_ONGOING_TO_OVERDUE:自动分析逾期工作任务（进行中转已逾期） UPDATE_WORK_TASK_ONGOING_TO_SUC:更新工作任务（进行中转已成功） CANCLE_WORK_TASK_NOT_AT_THE_TO_FAIL:撤销工作任务（未开始转已失败） CANCLE_WORK_TASK_ONGOING_TO_FAIL:撤销工作任务（进行中转已失败） VOID_WORK_TASK_ONGOING_TO_FAIL:作废工作任务（进行中转已失败） VOID_WORK_TASK_OVERDUE_TO_FAIL:作废工作任务（已逾期转已失败） AUTO_ANA_WORK_TASK_ONGOING_TO_FAIL:自动分析失败工作任务（进行中转失败） CREATE_PROBLEM:发起问题（待解决） UPDATE_WORK_TASK_OVERDUE_TO_SUC:更新工作任务（已逾期转已成功） UPDATE_WORK_TASK_ONGOING:更新工作任务（进行中） OTHER_STATUS_PROBLEM_TO_SOLVE:其他状态问题转待解决 OTHER_STATUS_PROBLEM_TO_OVERTIME:其他状态问题转已超时 REMIND_HANDLE_WORK_TASK:督办工作任务 GENERATE_REPORT_TASK_PROBLEM:汇报任务提问题 ISSUE_TARGET:下发目标 GENERATE_REPORT_TASK_SOLUTION:汇报任务提解决思路 GENERATE_REPORT_TASK_SUGGEST:汇报任务提改进建议 CFM_REC_PRIMARY_OBJECTIVE:确认签收一级指标 CFM_REC_SECOND_ABOVE_OBJECTIVE:确认签收二级及以上指标 REMIND_HANDLE_PRIMARY_DEPT_ARRANGE:督办一级部门目标安排 REMIND_HANDLE_SECOND_ABOVE_DEPT_ARRANGE:督办二级及以上部门目标安排 AUTO_ANA_SUB_REPORT_TASK_WILL_OVERDUE:自动分析即将逾期任务（待汇报） AUTO_ANA_EVA_REPORT_TASK_WILL_OVERDUE:自动分析即将逾期任务（评价中） AUTO_ANA_EXA_REPORT_TASK_WILL_OVERDUE:自动分析即将逾期任务（审核中） REVIEW_AND_SUBMIT_THREE_BUSINESS_MESSAGES:审核提交三条业务消息 UPDATE_TARGET_VALUE:修改目标值 CFM_REC_PRIMARY_OBJECTIVE:确认签收一级指标 CFM_REC_SECOND_ABOVE_OBJECTIVE:确认签收二级及以上指标 REMIND_HANDLE_PRIMARY_DEPT_ARRANGE:督办一级部门目标安排 REMIND_HANDLE_SECOND_ABOVE_DEPT_ARRANGE:督办二级及以上部门目标安排 ISSUE_OFFICIAL_DOC_SEND_EVERYONE:下发公文给所有人 ISSUE_OFFICIAL_DOC_SEND_DEPT:下发公文给部门 ISSUE_OFFICIAL_DOC_SEND_PERSON:下发公文给个人 ISSUE_NOTIFICATION_SEND_EVERYONE:下发通知给所有人 ISSUE_NOTIFICATION_SEND_DEPT:下发通知给部门 ISSUE_NOTIFICATION_SEND_PERSON:下发通知给个人 ISSUE_OFFICIAL_DOC_WORK_TASK_ARRANGE:下发公文工作任务安排 URGE_ISSUE_OFFICIAL_DOC_WORK_TASK_ARRANGE:催办公文工作任务安排 ASK_MY_COPYWRITER_ASSISTANT:提问我的文案助手 INITIATE_INDEPENDENT_THIRD_PARTY_QA:发起独立第三方问答 IMPLEMENT_THIRD-PARTY_INTELLIGENT_ANSWER:执行第三方智能回答 MY_INTELLIGENT_QA:我的智能问答 SOLVE_PROBLEM_QTA_TO_OTHER:待解决问题转其他状态（暂搁置、已挂起...） OVERTIME_PROBLEM_QTA_TO_OTHER:已超时问题转其他状态（暂搁置、已挂起...） AUTO_REPORT_AUTO_EXECUTE:自动汇报自动执行指令 REMIND_SIGN_WORK_TASK:提醒签收工作任务 RECORD_IDEAS:记录创意想法 RECORD_MESSAGE:记录重要笔记 EVA_REPORT_TASK:评价汇报任务（评价中） OVERDUE_AUTO_REPORT_AUTO_EXECUTE:逾期-自动汇报自动执行指令 AUTO_ANA_PROBLEM_OVERTIME:自动分析待解决超时问题（已超时）
     */
    @NotNull(message = "发送消息场景不能为空")
@ApiModelProperty("发送消息场景")
    private String	 sendMsgScene;

    /**
     * 消息模板标识 
     */
    @NotNull(message = "消息模板标识不能为空")
@ApiModelProperty("消息模板标识")
    private String	 messageTemplateCode;

    /**
     * 消息标题模板引擎标识 
     */
    @NotNull(message = "消息标题模板引擎标识不能为空")
@ApiModelProperty("消息标题模板引擎标识")
    private String	 msgTitleTemplateSemanticEngineCode;

    /**
     * 标题字段字段名 
     */
    @NotNull(message = "标题字段字段名不能为空")
@ApiModelProperty("标题字段字段名")
    private String	 titleFieldName;

    /**
     * 标题字段字段值 
     */
    @NotNull(message = "标题字段字段值不能为空")
@ApiModelProperty("标题字段字段值")
    private String	 titleFieldValue;
/**
     * 创建于空间ID 
     */
    @NotNull(message = "创建于空间ID不能为空")
@ApiModelProperty("创建于空间ID")
    private String	 spaceId;
/**
     * 创建人就职记录ID
     */
    @NotNull(message = "创建人就职记录ID不能为空")
@ApiModelProperty("创建人就职记录ID")
    private String	 createInductionId;

    /**
     * 创建于联盟应用ID
     */
    @NotNull(message = "创建于联盟应用ID不能为空")
@ApiModelProperty("创建于联盟应用ID")
    private String	 appId;
/**
     * 自定义字段2 
     */
    @NotNull(message = "自定义字段2不能为空")
@ApiModelProperty("自定义字段2")
    private String	 customField2;
/**
     * 评价模板ID 
     */
    @NotNull(message = "评价模板ID不能为空")
@ApiModelProperty("评价模板ID")
    private String	 evaluationTemplateId;

    /**
     * 评价主题ID 
     */
    @NotNull(message = "评价主题ID不能为空")
@ApiModelProperty("评价主题ID")
    private String	 evaluationSubjectId;
/**
     * 第四个字段字段名
     */
    @ApiModelProperty("第四个字段字段名")
    private String	 fourFieldName;

    /**
     * 第四个字段字段值
     */
    @ApiModelProperty("第四个字段字段值")
    private String	 fourFieldValue;
/**
     * 评价模板商业参数 
     */
    @ApiModelProperty("评价模板商业参数")
    private String	 schemeDataPara;

    /**
     * 周期模式 FATHER_SON_CYCLE:父子周期 SINGLE_CYCLE:单周期 IRREGULAR_CYCLE:不规则周期
     */
    @ApiModelProperty("周期模式")
    private String	 cycleMode;
/**
     * 通用数值字段（小数型） 
     */
    @ApiModelProperty("通用数值字段（小数型）")
    private Double	 comFloatField;

    /**
     * 通用数值字段1（小数型） 
     */
    @NotNull(message = "通用数值字段1（小数型）不能为空")
@ApiModelProperty("通用数值字段1（小数型）")
    private Double	 comFloatField1;
/**
     * 权重
     */
    @ApiModelProperty("权重")
    private Double	 weightValue;
/**
     * 数据库名称 
     */
    @NotNull(message = "数据库名称不能为空")
@ApiModelProperty("数据库名称")
    private String	 databaseName;

    /**
     * 数据库地址 
     */
    @NotNull(message = "数据库地址不能为空")
@ApiModelProperty("数据库地址")
    private String	 databaseAddress;

    /**
     * 数据库端口 
     */
    @NotNull(message = "数据库端口不能为空")
@ApiModelProperty("数据库端口")
    private Long	 databasePort;

    /**
     * 数据库用户名 
     */
    @NotNull(message = "数据库用户名不能为空")
@ApiModelProperty("数据库用户名")
    private String	 databaseUserId;

    /**
     * 数据库密码 
     */
    @NotNull(message = "数据库密码不能为空")
@ApiModelProperty("数据库密码")
    private String	 databasePassWord;
/**
     * 子周期类型 PARENT_CYCLE:父周期 MID_CYCLE:中期 SUB_CYCLE:子周期 PROCESS_CYCLE:过程周期
     */
    @NotNull(message = "子周期类型不能为空")
@ApiModelProperty("子周期类型")
    private String	 subcycleType;

    /**
     * 末级周期类型 HALF_YEAR:半年 QUARTER:季度 DOUBLE_MONTHS:双月 MONTH:月 DOUBLE_WEEKS:双周 WEEK:周 DISABLE:不启用
     */
    @NotNull(message = "末级周期类型不能为空")
@ApiModelProperty("末级周期类型")
    private String	 lastCycleType;

    /**
     * 第二末级周期类型 HALF_YEAR:半年 QUARTER:季度 DOUBLE_MONTHS:双月 MONTH:月 DOUBLE_WEEKS:双周 WEEK:周 DISABLE:不启用
     */
    @NotNull(message = "第二末级周期类型不能为空")
@ApiModelProperty("第二末级周期类型")
    private String	 secondLastCycleType;
/**
     * 第五个字段字段名 
     */
    @ApiModelProperty("第五个字段字段名")
    private String	 fiveFieldName;

    /**
     * 第五个字段字段值 
     */
    @ApiModelProperty("第五个字段字段值")
    private String	 fiveFieldValue;
/**
     * 开启主客观评分周期类型 LAST_CYCLE:末级周期 UNLIMITED:不限
     */
    @NotNull(message = "开启主客观评分周期类型不能为空")
@ApiModelProperty("开启主客观评分周期类型")
    private String	 enableSubjectiveRatingCycleType;
/**
     * 第六个字段字段名
     */
    @ApiModelProperty("第六个字段字段名")
    private String	 sixFieldName;

    /**
     * 第六个字段字段值
     */
    @ApiModelProperty("第六个字段字段值")
    private String	 sixFieldValue;
/**
     * 消息内容 
     */
    @NotNull(message = "消息内容不能为空")
@ApiModelProperty("消息内容")
    private String	 content;

}
